/*
 * @Author: your name
 * @Date: 2022-03-02 09:08:02
 * @LastEditTime: 2022-03-02 10:14:55
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \day03\13-重构迭代方法.js
 */
// every 方法 对每个数组元素进行检测 全部检测通过 true false   回调函数
//fun function(item){
//    return item>1
//}
// every方法 对每一个数组元素进行检测 全部检测通过true false
// 重构every方法
// fun接受的是function(item){
//     return item>0  }
// 
// Array.prototype.myEvery=function(fun){
//     for(var i=0;i<this.length;i++){
//         if(!fun(this[i])){         ///实际是  fun(this[i])真的不执行，假的来执行
//             return false
//         }
//     }
//     return true
// };
// var arr=[1,2,3,4,5];
// //                                              item接受的是 --this[i]=>arr[i]
// var result=arr.myEvery(function(item){
//     return item>1
// });
// console.log(result,'返回值');

// function test(fun){
//     fun(this[i])
// }
// test(function(item){
//     return item+1
// })

// 重构mySome
// Array.prototype.mySome=function(fun){
//     for(var i=0;i<this.length;i++){
//         if(fun(this[i])){
//             return true
//         }
//     }
//     return false
// }
// var arr=[1,2,3,4,5];

// var result=arr.mySome(function(item){
//     return item>4
// });
// console.log(result);

// 重构filter方法
/*Array.prototype.myFilter=function(fun){
    let newArr=[];
    for(i=0;i<this.length;i++){
        if(fun(this[i])){
            // 把符合条件的数组元素添加到新数组中
            newArr.push(this[i])
        }
    }
    return newArr
}
var arr=[1,2,3,4,5];
var result=arr.myFilter(function(item){
    return item>1
})
console.log(result);*/

//重构map方法
/*Array.prototype.myMap=function(fun){
    let newArr=[];
    for(i=0;i<this.length;i++){
      
       newArr.push( fun(this[i]))
        }
    
    return newArr
}
var arr=[1,2,3,4,5];
var result=arr.myMap(function(item){
    return item*2
})
console.log(result);*/


//重构foeach
Array.prototype.myForeach=function(fun){
    for (i=0;i<this.length;i++){
        fun(this[i],i,this)
    }
}

 var arr=[1,2,3,4,5]
 var result=arr.myForeach(function(item,index,arr){
     console.log(item,index,arr)
 })
 console.log(result);